/*
 * @Author: quit
 * @Date: 2021-11-09 16:01:11
 * @LastEditTime: 2022-01-08 17:55:45
 * @Descripttion: 项目入口文件
 */
import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets CSS重置
import ElementUI from 'element-ui' // 全局引入Element
import 'element-ui/lib/theme-chalk/index.css'
import i18n from '@/lang' // i18n 国际化
// import locale from 'element-ui/lib/locale/lang/en' // lang
import '@/styles/index.scss' // global css 公共样式
import App from './App' // Vue实例
import store from './store' // VueX
import router from './router' // 路由表
import '@/icons' // icon
// import '@/permission' // 路由鉴权

/**
 * @description: // 循环注册自定义指令
 *（* as 变量) 为语法糖表示导入所有对象，结果为一个Object
 * Object.keys 获取当前对象所有的keys值返回一个数组集合
 */
import * as directives from '@/directives'
Object.keys(directives).forEach(key => {
    Vue.directive(key, directives[key])
})

// 自定义组件
import Commpents from '@/components'
Vue.use(Commpents)

/**
 * 模拟数据,不需要使用mock请删除mock文件夹,删除代码并在项目配置文件(vue.config.js)中删除mock引入
 */
// 当项目环境处于生产环境时使用 mock 数据
// if (process.env.NODE_ENV === 'development') {
//   const { mockXHR } = require('../mock')
//   mockXHR()
// }

// set ElementUI lang to EN
Vue.use(ElementUI, {
    i18n: (key, value) => {
        i18n.t(key)
    }
})
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI);

Vue.config.productionTip = false

new Vue({
    el: '#app',
    router,
    store,
    i18n,
    render: h => h(App)
})
